1. Field of the Invention
The present invention relates to electronic design automation in the integrated circuit industry.
2. Description of Related Art
Electronic design automation EDA is applied in the semiconductor industry for virtually all device design projects. After an idea for the product is developed, EDA tools are utilized to define a specific implementation. The implementation defined using EDA tools is used to create mask data used for production of masks for lithographic use in the production of the finished chips, in a process referred to as tape-out. The masks are then created and used with fabrication equipment to manufacture integrated circuit wafers. The wafers are diced, packaged and assembled to provide integrated circuit chips for distribution.
An exemplary procedure for design using EDA tools begins with an overall system design using architecture defining tools that describe the functionality of the product to be implemented using the integrated circuit. Next, logic design tools are applied to create a high level description based on description languages such as Verilog or VHDL, and functional verification tools are applied in an iterative process to assure that the high-level description accomplishes the design goals. Next, synthesis and design-for-test tools are used to translate the high-level description to a netlist, optimize the netlist for target technology, and design and implement tests that permit checking of the finished chip against the netlist.
A typical design flow might next include a design planning stage, in which an overall floor plan for the chip is constructed and analyzed to ensure that timing parameters for the netlist can be achieved at a high level. Next, the netlist may be rigorously checked for compliance with timing constraints and with the functional definitions defined at the high level using VHDL or Verilog. After an iterative process to settle on a netlist and map the netlist to a cell library for the final design, a physical implementation tool is used for placement and routing. A tool performing placement positions circuit elements on the layout, and a tool performing routing defines interconnects for the circuit elements.
The components defined after placement and routing are usually then analyzed at the transistor level using an extraction tool, and verified to ensure that the circuit function is achieved and timing constraints are met. The placement and routing process can be revisited as needed in an iterative fashion. Next, the design is subjected to physical verification procedures, such as design rule checking DRC, layout rule checking LRC and layout versus schematic LVS checking, that analyze manufacturability, electrical performance, lithographic parameters and circuit correctness.
After closure on an acceptable design by iteration through design and verify procedures, like those described above, the resulting design can be subjected to resolution enhancement techniques that provide geometric manipulations of the layout to improve manufacturability. Finally, the mask data is prepared and taped out for use in producing finished products.
In some of the analysis stages, the EDA tools perform timing checks to ensure that the circuits being laid out satisfy the timing constraints of the product. Exemplary tools used for performing timing checks are often referred to as timing verifiers or timing analyzers, and include such commercially available products as DesignTime and PrimeTime, distributed by Synopsys, Inc. of Mountain View Calif. Because of the complexity of modern integrated circuit design, a single chip may have hundreds of thousands of circuit paths that must meet specific timing constraints. Also, changes made during the process to one part of a design can have complicated and difficult to predict implications for other parts of the design.
For example, a timing constraint for a circuit path, that starts with the output of a clocked register, and passes through combinational logic to an input of another clocked register, is that delay through the combinational path does not exceed the time interval between the clock at the first register and the clock at the last register. This time interval is often the period of the clock used on the chip on critical timing paths, and limits the maximum clock frequency that can be used.
The difference between the delay through a timing path and the specified timing constraint is often referred to as slack. Negative slack means that the constraint is not met because the delay through the path, as measured at a timing endpoint for the path, exceeds the time allowed. Positive slack means that the constraint is met or exceeded, because the delay through the path is less than the time allowed.
One function performed by timing verifiers comprises computing a circuit's maximum clock frequency by measuring the critical path timings through the logic. Because circuit delays are never known with complete precision, designers often look at near-critical paths to get an idea how circuit timing might change as the internal delays change in subsequent steps in the implementation tool flow. The total negative slack (TNS) of all timing endpoints is commonly used to assess the near-critical endpoints for a sign of troubles ahead. The TNS is computed by simply adding together the negative slack on all the timing endpoints having negative slack, while ignoring endpoints with positive slack. A high TNS is a measure of poor timing performance of a design. Therefore, as one iterates through the design process, the designer can use a timing verifier tool to monitor changes in TNS to indicate whether the changes being proposed to correct specific paths result in an increase or decrease in TNS.
TNS however gives equal credit for improving timing on any endpoint that has a negative slack. Therefore, an improvement in slack on a non-critical timing endpoint yields the same change in TNS as an improvement on a critical timing endpoint. Therefore, it may not provide valuable data, and can be misleading, for some design changes.
Another measure utilized is known as the worst negative slack WNS, which is generated by timing verifiers by evaluating the circuit to find paths that have the worst negative slack in a particular netlist under test. The WNS indicates the maximum clock speed at which the design can reliably operate. However, changes in the WNS are incomplete indicators of overall improvement in a circuit design.
It is desirable to provide a tool that generates an indicator of circuit timing performance which measures improvements in overall timing performance as a replacement or supplement to the TNS and similar measurements.